package main.java.game.combatant;


import java.util.LinkedList;
import java.util.List;

import main.java.game.Player;
import main.java.game.item.Armour;
import main.java.game.item.Shield;
import main.java.game.item.Weapon;
import main.java.game.item.equipableTreasure.CloakTreasure;
import main.java.game.item.equipableTreasure.EquipableTrinketTreasure;
import main.java.game.item.equipableTreasure.SpecialObject;


/**
 * @author  ILDiNHo
 */
public class Hero extends Combatant {
	
	private Weapon weapon;
	private Armour armour;
	private CloakTreasure cloak;
	
	private Shield shield;
	private List<SpecialObject> specialObjects=new LinkedList<SpecialObject>();
	private List<EquipableTrinketTreasure> equipedTrinkets = new LinkedList<EquipableTrinketTreasure>();
	

	public Hero(Integer init, Integer lifepoints, Integer defense,
			Integer attack, String name) {
		super(name, init, lifepoints, defense, attack);
		player=null;
		setWeapon(null);
		setArmour(null);
		setCloak(null);
		
		setShield(null);
	}

	/**
	 * @uml.property  name="player"
	 * @uml.associationEnd  
	 */
	private Player player;

	/** 
	 * Getter of the property <tt>player</tt>
	 * @return  Returns the player.
	 * @uml.property  name="player"
	 */
	public Player getPlayer() {
		return player;
	}

	/** 
	 * Setter of the property <tt>player</tt>
	 * @param player  The player to set.
	 * @uml.property  name="player"
	 */
	public void setPlayer(Player player) {
		this.player = player;
	}

	public String toString(){
		return this.getName();
	}

	public Weapon getWeapon() {
		return weapon;
	}

	public void setWeapon(Weapon weapon) {
		this.weapon = weapon;
	}

	public Armour getArmour() {
		return armour;
	}

	public void setArmour(Armour armour) {
		this.armour = armour;
	}

	public CloakTreasure getCloak() {
		return cloak;
	}

	public void setCloak(CloakTreasure cloak) {
		
			this.cloak =  cloak;
	}

	

	public Shield getShield() {
		return shield;
	}

	public void setShield(Shield shield) {
		this.shield = shield;
	}

	public void setSpecialObjects(List<SpecialObject> specialObjects) {
		this.specialObjects = specialObjects;
	}

	public List<SpecialObject> getSpecialObjects() {
		return specialObjects;
	}

	public void setEquipedTrinkets(List<EquipableTrinketTreasure> equipedTrinkets) {
		this.equipedTrinkets = equipedTrinkets;
	}

	public List<EquipableTrinketTreasure> getEquipedTrinkets() {
		return equipedTrinkets;
	}


}